1. Field of the Invention
The present invention relates to multi-processing systems having a plurality of computer processors, and to multitasking systems capable of asynchronously executing a plurality of tasks, and more particularly relates to a serialization mechanism to control system events, for example the referencing of data objects.
2. Background Art
It is frequently necessary in multitasking and multi-processing systems to have serialization mechanisms to control system events, for example the referencing of shared data objects. These mechanisms may be critical to preserve the integrity of data, for example where a shared data object is to be destroyed. Serialization controls system events so that certain resource references occur serially, i.e. one task reference at a time, in an environment designed to allow multiple resource references, i.e. parallel references. Serialization prevents a task from using resources or data that are already being used by an interrupted or concurrently executing task, until that task has finished using the resources or data. Serialization ensures the integrity of accesses to data, the consistency of accesses to interrelated data, and the exclusivity of control over resources, among competing tasks.
U.S. Pat. No. 3,947,823 to Padegs et al. entitled "Means for Coordinating Asynchronous Main Store Access In A Multiprocessing System Using Virtual Storage", commonly assigned, discloses a unique control circuit in a multi-processing system which uses demand-paging and virtual addressing. The circuit implements serialization by maintaining the addressability of an invalidated page frame until execution is completed for all current instructions in all processors. The circuit utilizes pairs of addressability registers, associated availability control triggers and other circuit elements to ensure the preservation of the invalidated page frame until all current instructions in all processors are completed.
The present invention provides a serialization mechanism that may be implemented entirely in software, eliminating the need for special purpose registers and other hardware. The invention also adds minimal overhead to an existing control program.
In addition, conventional, prior art serialization has typically been implemented by way of locks. Locks add a significant amount of overhead to the system control program since every reference to a resource must access the lock, even when exclusive control is not required. It is desirable to eliminate the use of locks where possible.
Accordingly, it is an object of the present invention to provide a serialization mechanism, for example for references to data objects, such as page frames, tables, and the like, which may be implemented entirely in software. It is another object of the invention to provide such a serialization mechanism which can be implemented in a manner that adds minimal overhead to an existing control program. It is a still further object of the present invention to provide a serialization mechanism that eliminates the necessity of shared locks for operations that require only shared access to a data object.